////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  linearization_3_3_0.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef LINEARIZATION_3_3_0_H
#define LINEARIZATION_3_3_0_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "ispglobalelements.h"

#define LINEARIZATION_3_3_0_NAMESPACE_BEGIN namespace linearization_3_3_0 {
#define LINEARIZATION_3_3_0_NAMESPACE_END }

LINEARIZATION_3_3_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// linearization33_rgn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct linearization33_rgn_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// r_lut_p_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel knee points
    /// Default Value: 857,2797,4738,6679,8620,10560,12501,14442
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        8
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct r_lut_p_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// r_lut_p - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 857,2797,4738,6679,8620,10560,12501,14442
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT r_lut_p[8];
    } r_lut_p_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// r_lut_base_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel base output value
    /// Default Value: 0,0,1940,3881,5822,7763,9703,11644,13585
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        9
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct r_lut_base_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// r_lut_base - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0,0,1940,3881,5822,7763,9703,11644,13585
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT r_lut_base[9];
    } r_lut_base_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gr_lut_p_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel knee points
    /// Default Value: 854,2795,4736,6677,8618,10559,12500,14441
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        8
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gr_lut_p_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gr_lut_p - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 854,2795,4736,6677,8618,10559,12500,14441
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gr_lut_p[8];
    } gr_lut_p_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gr_lut_base_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel base output value
    /// Default Value: 0,0,1941,3882,5823,7764,9705,11646,13587
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        9
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gr_lut_base_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gr_lut_base - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0,0,1941,3882,5823,7764,9705,11646,13587
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gr_lut_base[9];
    } gr_lut_base_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gb_lut_p_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel knee points
    /// Default Value: 855,2796,4737,6678,8619,10560,12501,14442
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        8
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gb_lut_p_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gb_lut_p - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 855,2796,4737,6678,8619,10560,12501,14442
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gb_lut_p[8];
    } gb_lut_p_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// gb_lut_base_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel base output value
    /// Default Value: 0,0,1941,3882,5823,7764,9705,11646,13587
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        9
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct gb_lut_base_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gb_lut_base - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0,0,1941,3882,5823,7764,9705,11646,13587
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT gb_lut_base[9];
    } gb_lut_base_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// b_lut_p_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel knee points
    /// Default Value: 853,2794,4735,6676,8618,10559,12500,14441
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        8
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct b_lut_p_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// b_lut_p - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 853,2794,4735,6676,8618,10559,12500,14441
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT b_lut_p[8];
    } b_lut_p_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// b_lut_base_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   R/Gr/Gb/B channel base output value
    /// Default Value: 0,0,1941,3882,5823,7765,9706,11647,13588
    /// Range:         [0, 16383]
    /// Bit Depth:     14uQ0
    /// Length:        9
    /// Notes:         none
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct b_lut_base_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// b_lut_base - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0,0,1941,3882,5823,7765,9706,11647,13588
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT b_lut_base[9];
    } b_lut_base_tab;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_linearization33_cct_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_linearization33_cct_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// cct_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type              cct_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// linearization33_rgn_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    linearization33_rgn_dataType linearization33_rgn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_linearization33_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_linearization33_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::trigger_pt_type_aec aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_linearization33_cct_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                            mod_linearization33_cct_dataCount;
        UINT32                            mod_linearization33_cct_dataID;
        mod_linearization33_cct_dataType* mod_linearization33_cct_data;
    } aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_linearization33_led_idx_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_linearization33_led_idx_dataType
{
    ispglobalelements::trigger_pt_type_led_idx led_idx_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// led_idx_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct led_idx_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_linearization33_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                            mod_linearization33_aec_dataCount;
        UINT32                            mod_linearization33_aec_dataID;
        mod_linearization33_aec_dataType* mod_linearization33_aec_data;
    } led_idx_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_linearization33_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_linearization33_hdr_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type_aec_hdr hdr_aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct hdr_aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_linearization33_led_idx_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                                mod_linearization33_led_idx_dataCount;
        UINT32                                mod_linearization33_led_idx_dataID;
        mod_linearization33_led_idx_dataType* mod_linearization33_led_idx_data;
    } hdr_aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_linearization33_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_linearization33_drc_gain_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type drc_gain_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct drc_gain_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_linearization33_hdr_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                                mod_linearization33_hdr_aec_dataCount;
        UINT32                                mod_linearization33_hdr_aec_dataID;
        mod_linearization33_hdr_aec_dataType* mod_linearization33_hdr_aec_data;
    } drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_linearization33_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_linearization33_coreType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mod_linearization33_drc_gain_data - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                                 mod_linearization33_drc_gain_dataCount;
    UINT32                                 mod_linearization33_drc_gain_dataID;
    mod_linearization33_drc_gain_dataType* mod_linearization33_drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_linearization33Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_linearization33Type
{
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Binary file symbol table entry ID
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32 SymbolTableID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// enable_section
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct enable_sectionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        globalelements::enable_flag_type linearization_enable;
    } enable_section;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// module_version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct module_versionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        INT32 major_revision;
        INT32 minor_revision;
        INT32 incr_revision;
    } module_version;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_variables
    ///
    /// Default Value: control_drc_gain, control_aec_exp_sensitivity_ratio, control_led_idx, control_lux_idx, control_cct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_variablesStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// control_var_type - Array
        /// Default Value: control_drc_gain, control_aec_exp_sensitivity_ratio, control_led_idx, control_lux_idx, control_cct
        /// Length:        5
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        enum class control_var_typeEnum
        {
            control_drc_gain                  = 0,
            control_exp_time_ratio            = 1,
            control_aec_exp_sensitivity_ratio = 2,
            control_led_idx                   = 3,
            control_lux_idx                   = 4,
            control_gain                      = 5,
            control_cct                       = 6
        } control_var_type[5];
    } control_variables;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_method
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_methodStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_exp_control
        /// Default Value: control_lux_idx
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_type     aec_exp_control;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_hdr_control
        /// Default Value: control_aec_exp_sensitivity_ratio
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_hdr_type aec_hdr_control;
    } control_method;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// private_information
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct private_informationStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// led_sensitivity_trigger
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::trigger_pt_type led_sensitivity_trigger;
    } private_information;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_linearization33_core
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_linearization33_coreType chromatix_linearization33_core;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_linearization33TypeClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class chromatix_linearization33TypeClass : public ParameterModule, public chromatix_linearization33Type
{
public:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const UINT16 MAJOR = 3;
    static const UINT16 MINOR = 3;
    static const UINT32 PATCH = 0;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Default Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_linearization33TypeClass(
        const CHAR* name);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_linearization33TypeClass(
        const CHAR* name,
        UINT32 modeId,
        UINT16 mode,
        UINT16 subMode,
        UINT32 group);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Destructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ~chromatix_linearization33TypeClass();

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetName
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const CHAR* GetName(
        const CHAR* type);


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_r_lut_p_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_r_lut_p_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::r_lut_p_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_r_lut_base_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_r_lut_base_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::r_lut_base_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_gr_lut_p_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_gr_lut_p_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::gr_lut_p_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_gr_lut_base_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_gr_lut_base_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::gr_lut_base_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_gb_lut_p_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_gb_lut_p_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::gb_lut_p_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_gb_lut_base_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_gb_lut_base_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::gb_lut_base_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_b_lut_p_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_b_lut_p_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::b_lut_p_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load linearization33_rgn_dataType_b_lut_base_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadlinearization33_rgn_dataType_b_lut_base_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        linearization33_rgn_dataType::b_lut_base_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_cct_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_cct_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_cct_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_aec_dataType_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_aec_dataType_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_aec_dataType::aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_led_idx_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_led_idx_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_led_idx_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_led_idx_dataType_led_idx_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_led_idx_dataType_led_idx_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_led_idx_dataType::led_idx_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_hdr_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_hdr_aec_dataType_hdr_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_drc_gain_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_linearization33_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_linearization33_drc_gain_dataType_drc_gain_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_linearization33_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_linearization33_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_linearization33_coreType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_linearization33Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_linearization33Type(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load enable_sectionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadenable_sectionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33Type::enable_sectionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load module_versionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmodule_versionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33Type::module_versionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_variablesStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_variablesStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33Type::control_variablesStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_methodStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_methodStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33Type::control_methodStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load private_informationStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadprivate_informationStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_linearization33Type::private_informationStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_aec_dataType(
        mod_linearization33_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_aec_dataType_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_aec_dataType_aec_dataStruct(
        mod_linearization33_aec_dataType::aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_led_idx_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_led_idx_dataType(
        mod_linearization33_led_idx_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_led_idx_dataType_led_idx_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_led_idx_dataType_led_idx_dataStruct(
        mod_linearization33_led_idx_dataType::led_idx_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_hdr_aec_dataType(
        mod_linearization33_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_hdr_aec_dataType_hdr_aec_dataStruct(
        mod_linearization33_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_drc_gain_dataType(
        mod_linearization33_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_linearization33_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_linearization33_drc_gain_dataType_drc_gain_dataStruct(
        mod_linearization33_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_linearization33_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_linearization33_coreType(
        chromatix_linearization33_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_linearization33Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_linearization33Type(
        chromatix_linearization33Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Parse symbol table entry, and return a new object
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ParameterModule* Parse(
        ParameterSetManager* manager,
        ParameterFileSymbolTableEntry* entry) const;

}; // End class chromatix_linearization33TypeClass

LINEARIZATION_3_3_0_NAMESPACE_END
#endif // LINEARIZATION_3_3_0_H

